#pragma once

/*
 * 状态机 RPC 服务基类
 * 用于给中间件访问状态机进行读操作
 */

#include <memory>

#include "state_machine/StateMachine.h"

namespace raft::state_machine {
    class StateRpc {
    public:
        virtual ~StateRpc() = default;

        // 启动 rpc 服务
        virtual void start(std::shared_ptr<StateMachine> state_machine) = 0;

        // 停止 rpc 服务
        virtual void stop() = 0;
    };
}// namespace raft::state_machine
